03-RDS생성
RDS 데이터베이스 생성
웹 애플리케이션에서 사용할 MySQL 데이터베이스를 RDS로 생성합니다.
전제조건
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/01-EC2인스턴스시작 완료 (VPC 및 서브넷 구성됨)
- AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/02-NodeJS설치배포 완료 (Hello World 서버 실행됨)
1. RDS 서브넷 그룹 생성
RDS 인스턴스가 사용할 서브넷들을 그룹으로 묶어줍니다.
RDS 콘솔 접속 및 서브넷 그룹 생성
- AWS 콘솔에서 RDS 서비스 접속
- 왼쪽 메뉴에서 "Subnet groups" 클릭
- "Create DB subnet group" 클릭
서브넷 그룹 설정
Name: webapp-db-subnet-group
Description: Subnet group for webapp database
VPC: webapp-vpc 선택
가용 영역 및 서브넷 추가
Availability Zones:
ap-northeast-2a선택ap-northeast-2c선택
Subnets:
- ap-northeast-2a:
webapp-private-subnet-db(10.0.2.0/24) 선택 - ap-northeast-2c:
webapp-private-subnet-app(10.0.3.0/24) 선택
서브넷 그룹 생성 완료
"Create" 클릭하여 서브넷 그룹 생성을 완료합니다.
2. RDS 보안 그룹 생성
데이터베이스에 접근할 수 있는 트래픽을 제어하는 보안 그룹을 만듭니다.
EC2 콘솔에서 보안 그룹 생성
- EC2 콘솔 → 네트워크 및 보안 → 보안 그룹
- "보안 그룹 생성" 클릭
보안 그룹 기본 설정
보안 그룹 이름: webapp-db-sg
설명: Security group for webapp database
VPC: webapp-vpc 선택
인바운드 규칙 추가
"인바운드 규칙 추가" 클릭하여 다음 규칙을 추가합니다:
규칙 1: EC2에서의 접근 허용
- 유형: MySQL/Aurora
- 포트 범위: 3306
- 소스:
webapp-web-sg(EC2 웹서버 보안 그룹)
규칙 2: 개발/테스트용 접근 (선택사항)
- 유형: MySQL/Aurora
- 포트 범위: 3306
- 소스: 내 IP (현재 IP 주소)
보안 그룹 생성 완료
"보안 그룹 생성" 클릭합니다.
3. RDS 인스턴스 생성
실제 MySQL 데이터베이스를 생성합니다.
RDS 인스턴스 생성 시작
- RDS 콘솔에서 "Databases" 클릭
- "Create database" 클릭
생성 방법 선택
Database creation method: Standard create 선택
엔진 설정
Engine type: MySQL 선택
Engine Version: MySQL 8.0.35 (또는 최신 안정 버전)
템플릿
Templates: Free tier 선택
설정
DB instance identifier: webapp-db
Master username: admin
Master password: webapp123!
Confirm password: webapp123!
중요: 이 비밀번호는 나중에 애플리케이션에서 사용하므로 기억해두세요!
인스턴스 구성
DB instance class: db.t3.micro (프리 티어)
스토리지
Storage type: gp2
Allocated storage: 20 GiB (프리 티어 한도)
Enable storage autoscaling: 체크 해제
연결
Virtual private cloud (VPC): webapp-vpc
DB subnet group: webapp-db-subnet-group
Public access: No (보안을 위해 비공개로 설정)
VPC security groups: Choose existing
- 기존
default보안 그룹 제거 webapp-db-sg선택
Availability Zone: No preference
Database port: 3306
데이터베이스 인증
Database authentication: Password authentication
추가 구성
Initial database name: webapp_db
DB parameter group: default.mysql8.0
Option group: default:mysql-8-0
Backup retention period: 1 day
Delete protection: 체크 해제 (실습용)
RDS 인스턴스 생성
"Create database" 클릭합니다.
4. RDS 생성 완료 대기
RDS 인스턴스 생성에는 약 5-10분이 소요됩니다.
생성 상태 확인
- RDS 콘솔에서 "Databases" 메뉴 확인
webapp-db인스턴스의 Status가Available로 변경될 때까지 대기
엔드포인트 정보 확인
인스턴스가 Available 상태가 되면:
webapp-db인스턴스 클릭- "Connectivity & security" 탭에서 Endpoint 정보 복사
- 예시:
webapp-db.cx6mc24eklg5.ap-northeast-3.rds.amazonaws.com
중요: 이 엔드포인트 주소는 다음 단계에서 사용하므로 메모해두세요!
5. 연결 테스트
EC2에서 생성된 RDS에 접속할 수 있는지 확인합니다.
EC2에 MySQL 클라이언트 설치
# EC2 인스턴스에 SSH 접속 후 실행
sudo yum update -y
sudo yum install mariadb105 -y
# 설치 확인
mysql --version
RDS 연결 테스트
# MySQL 클라이언트로 RDS 접속 테스트
# 여러분의 실제 엔드포인트로 교체하세요!
mysql -h webapp-db.cx6mc24eklg5.ap-northeast-3.rds.amazonaws.com -u admin -p
# 비밀번호 입력: webapp123!
연결 성공 확인
연결이 성공하면 MySQL 프롬프트가 나타납니다:
-- 데이터베이스 목록 확인
SHOW DATABASES;
-- webapp_db 데이터베이스 사용
USE webapp_db;
-- 테이블 목록 확인 (아직 비어있음)
SHOW TABLES;
-- 연결 종료
quit
완료 체크리스트
중요 정보 정리
다음 단계에서 사용할 정보들을 정리해두세요:
RDS 연결 정보:
- 엔드포인트:
webapp-db.cx6mc24eklg5.ap-northeast-3.rds.amazonaws.com(여러분 것으로 교체) - 사용자명:
admin - 비밀번호:
webapp123! - 데이터베이스명:
webapp_db - 포트:
3306
RDS 생성 완료! 이제 웹 애플리케이션에서 사용할 데이터베이스가 준비되었습니다.
다음 단계: AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/04-RDS연결업그레이드로 이동하여 Hello World 서버를 실제 데이터베이스 연결 웹 애플리케이션으로 업그레이드합니다.
관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/Week2-전체가이드, AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/02-NodeJS설치배포